//
//  ZhuiShuReaderSDK.h
//  ZhuiShuReaderSDK
//
//  Created by iyuanxucheng on 2018/4/10.
//  Copyright © 2018年 HangZhou RuGuo Network Technology Co.Ltd. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ZSSDKThemeColorManager.h"
#import "ZSSDKThemeColorModel.h"
#import "ZSSDKThemeNavColorModel.h"

@interface ZhuiShuReaderSDK : NSObject

+ (instancetype)sharedInstance;

/**
 获取追书SDK阅读器根视图,此跟视图只能放到navigation controller中
 
 @param isModalStyle 是否是模态弹出SDK
 @return 返回UIViewController
 */
- (UIViewController *)rootViewControllerWithIsModalStyle:(BOOL)isModalStyle;

/**
 设置SDK的渠道ID和渠道名称
 注意：需要在进入SDK前设置申请的渠道ID和渠道名称

 @param channelId 渠道ID，为了区分用户和收入分成，请找产品确认
 @param channelName 渠道名称，为了区分用户和收入分成，请找产品确认
 */
- (void)setupSDKChannelId:(NSString *)channelId withChannelName:(NSString *)channelName;

#pragma mark - 审核开关
/**
 设置苹果审核模式
 注意：送审时会被拒绝，请开启审核开关，接入方可以根据审核情况来控制SDK审核展示内容
 
 @param isReviewMode 是否是在审核期间
 */
- (void)setupAppleReviewMode:(BOOL)isReviewMode;

#pragma mark - 设置微信和QQ
/**
 设置默认的微信和QQ登录APPID，需要进入SDK前调用
 注意：此方法和setupCustomThirdLoginIDWithQQAppId方法只能调用其中一个
 注意：SDK申请通用的微信和QQ登录APPID，需要在URL Types设置README.md中提到的默认URL Schemes
 */
- (void)setupCommonThirdLoginSDK;

/**
 使用自己申请的微信和QQ AppId和AppSecret，需要进入SDK前调用
 注意：此方法和setupCommonThirdLoginSDK方法只能使用其中一个
 注意：使用自己申请的APPID，请参照对应开放平台文档加入相关配置

 @param qqAppId QQ AppId
 @param weChatAppId 微信 AppId
 @param weChatAppSecret 微信 AppSecret
 */
- (void)setupCustomThirdLoginIDWithQQAppId:(NSString *)qqAppId withWeChatAppId:(NSString *)weChatAppId withWeChatAppSecret:(NSString *)weChatAppSecret;

/**
 处理微信、QQ和微博通过URL启动App时传递的数据
 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用。

 @param url 启动第三方应用时传递过来的URL
 */
- (void)setupHandleOpenURL:(NSURL *)url;

/**
 设置登录功能中不需要展示微信和QQ登录
 
 @param isNotNeedQQAndWeChatLogin 是否需要展示微信和QQ登录，默认非审核下展示QQ和微信登录
 */
- (void)setupNotNeedQQAndWeChatLogin:(BOOL)isNotNeedQQAndWeChatLogin;

#pragma mark - 设置SDK自定义UI
/**
 设置添加书架和个人中心顶部导航栏左侧的返回按钮

 @param isNeedAdd 判读是否需要添加左侧返回按钮
 @param backBtnImage 返回的UIImage，可以为nil
 */
- (void)setupAddMainViewBackButton:(BOOL)isNeedAdd withBackBtnImage:(UIImage *)backBtnImage;

/**
 设置登录界面顶部的logo图片

 @param loginTopLogoImage 登录界面顶部的logo图片
 */
- (void)setupLoginTopLogoImage:(UIImage *)loginTopLogoImage;

#pragma mark - 用户登录登出状态
/**
 让登录SDK用户退出
 */
- (void)userLogoutSDK;

/**
 判断用户是否已经登录
 */
- (BOOL)isUserLogined;

@end
